<?php

namespace app\index\controller;

use think\Controller;
use think\Db;
use think\Request;

class Index extends Controller
{
    // 入口页面
    public function index()
    {
        return view('index/index');
    }


    // 验证 开启密码
    public function pass()
    {
        $pass = MD5(input('post.pass'));
        // 查询占位密码
        $row = Db::name('adminuser')
            ->where(['name' => NULL, 'pwd' => $pass])
            ->find();
        // 开启密码 是否正确
        if ($row == null) {
            // 错误则 重新输入
            $this->error('开启密码 输入错误！', '/', '', 1);
        } else {
            // 正确则进入登录页面
            $this->success('Pass! 请前往登录', 'index/login/index');
        }
    }


    // 学员注册页面
    public function add()
    {
        $groupList = Db::name('class')
            ->field(['id', 'class_name'])
            ->where('status', 1)
            ->order('id', 'DESC')
            ->select();
        return view('index/add', ['groupList' => $groupList]);
    }


    // 处理注册信息
    public function save(Request $request)
    {
        $p = $request->post();
        $res = Db::name('user')->insertGetId($p);
        if ($res > 0) {
            $this->success('注册成功!', 'index/index/roll', '', 2);
        } else {
            $this->error('注册失败,请重试!');
        }
    }

    // 点名器页面
    public function roll()
    {
        // 查询班期信息
        $groupList = Db::name('class')
            ->field(['id', 'class_name'])
            ->where('cover', 1)
            ->order('id', 'DESC')
            ->select();

        return view(
            'index/roll',
            ['groupList' => $groupList]
        );
    }


    // 根据班期 获取学员列表
    public function getstu()
    {
        // 必须是AJAX请求
        if (!Request::instance()->isAjax()) $this->error('非法的请求！', 'index/index/index');
        // 判断是否选班期
        $className = input('get.group');
        $group = empty($className) ? false : $className;

        if ($group === false) {
            $where = [];
            $className = '全部班期';
        } else {
            $where = ['uclass' => $group];
        }
        // 按条件 查出学员列表
        $userList = Db::name('user')
            ->field(['id', 'uname', 'uinfo'])
            ->where($where)
            ->select();

        // 重组数组
        $list1 = [];
        $list2 = [];
        if (!empty($userList)) {
            shuffle($userList);
            foreach ($userList as $key => $val) {
                $list1[$key] = $val['uname'];
                $list2[$key] = $val['uinfo'];
            }
            $stu = [
                'code' => 200,
                'msg' => "$className 的数据拉取完成！",
                'list1' => $list1,
                'list2' => $list2
            ];
        } else {
            $list1[0] = '查无数据';
            $list2[0] = '查无';
            $stu = [
                'code' => 4004,
                'msg' => "查不到 $className 的数据，请换一个试试！",
                'list1' => $list1,
                'list2' => $list2
            ];
        }
        return json($stu);
    }


    // 校验学员姓名
    public function getname()
    {
        $name = input('get.name');
        $row = Db::name('user')
            ->field('id')
            ->where('uname', $name)
            ->find();
        if ($row == null) {
            $res = ['code' => 200, 'msg' => '通过！无重复姓名'];
        } else {
            $res = ['code' => 4004, 'msg' => '学员姓名有重复,请加班期作为标注'];
        }
        return $res;
    }
}
